package com.weishuang.monitor.leader.mapper;

import com.weishuang.monitor.leader.entity.SysMenu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.weishuang.monitor.leader.entity.dto.MenuDTO;
import com.weishuang.monitor.leader.entity.vo.MenuVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 菜单信息 Mapper 接口
 * </p>
 *
 * @author weishuang
 * @since 2021-03-23
 */
public interface SysMenuMapper extends BaseMapper<SysMenu> {

    List<MenuVO> getMenuList(MenuDTO menu);

    List<MenuVO> getSysManagerMenus();

    List<MenuVO> getUserMenuListByUserId(@Param("userCode") String userCode);

    void replaceSonTreeName(@Param("id") String id, @Param("i") int i, @Param("join") String join);

    void replaceSonTreeSorts(@Param("id") String id, @Param("i") int i, @Param("join") String join);

    int updateMenu(@Param("menu") SysMenu menu);

    /**
     * 根据用户Id获取菜单，会把所有父级都查询出来。前端半选择状态不用传菜单ID
     * @param userId
     * @param admin
     * @return
     */
    List<MenuVO> getMenuListByUserId(@Param("userId") String userId, @Param("isAdmin") boolean admin);

    List<String> getUserHaveMenuCode(@Param("roleId") String roleId);

    List<SysMenu> getSysMenuPermissionByUserId(@Param("userId") String userId);
}
